package org.jeecg.common.entity;


import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.math.BigDecimal;


/**
 * @Description: 房间基本信息
 * @Author: 国子软件
 * @Date: 2022-04-28
 * @Version: V1.0
 */
@Data
@TableName("hs_basics_room")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "hs_basics_room对象", description = "hs_basics_room")
public class Room implements Serializable {
    private static final long serialVersionUID = 1L;


    /**
     * 主键
     */
    @TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "主键")
    private String id;

    /**
     * 租户编号
     */
    @ApiModelProperty(value = "租户编号")
    private String tenantId;

    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    private String remark;

    /**
     * 变更原因
     */
    @Excel(name = "变更原因", width = 15)
    @ApiModelProperty(value = "变更原因")
    private String versionReason;

    /**
     * 变更时间
     */
    @Excel(name = "变更时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "变更时间")
    private java.util.Date versionDate;

    /**
     * 版本号
     */
    @Excel(name = "版本号", width = 15)
    @ApiModelProperty(value = "版本号")
    private String versionNumber;

    /**
     * 创建人
     */
    @Excel(name = "创建人", width = 15,dicCode = "id", dictTable = "blade_user", dicText = "name")
    @ApiModelProperty(value = "创建人")
    @Dict(dicCode = "id", dictTable = "blade_user", dicText = "name", dictHouse = "house")
    private String createUser;

    /**
     * 创建时间
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "创建时间")
    private java.util.Date createTime;

    /**
     * 最后修改人
     */
    @Excel(name = "最后修改人", width = 15)
    @ApiModelProperty(value = "最后修改人")
    @Dict(dicCode = "id", dictTable = "blade_user", dicText = "name", dictHouse = "house")
    private String updateUser;

    /**
     * 修改时间
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "修改时间")
    private java.util.Date updateTime;

    /**
     * 审批人
     */
    @Excel(name = "审批人", width = 15)
    @ApiModelProperty(value = "审批人")
    private String approvedUser;

    /**
     * 审批时间
     */
    @Excel(name = "审批时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "审批时间")
    private java.util.Date approvedTime;

    /**
     * 审批意见
     */
    @Excel(name = "审批意见", width = 15)
    @ApiModelProperty(value = "审批意见")
    private String approvedOpinion;

    /**
     * 状态
     */
    @Excel(name = "状态", width = 15)
    @ApiModelProperty(value = "状态")
    private String status;

    /**
     * 乐观锁字段
     */
    @Excel(name = "乐观锁字段", width = 15)
    @ApiModelProperty(value = "乐观锁字段")
    private String tsVersion;

    /**
     * 删除标注
     */
    @Excel(name = "删除标注", width = 15)
    @ApiModelProperty(value = "删除标注")
    private String isDeleted;

    /**
     * 单据编号
     */
    @Excel(name = "单据编号", width = 15)
    @ApiModelProperty(value = "单据编号")
    private String roomCode;

    /**
     * 房间编号
     */
    @Excel(name = "房间编号", width = 15)
    @ApiModelProperty(value = "房间编号")
    private String roomSort;

    /**
     * 房间名称
     */
    @Excel(name = "房间名称", width = 15)
    @ApiModelProperty(value = "房间名称")
    private String roomName;

    /**
     * 所属房屋
     */
    @Excel(name = "所属房屋", width = 15)
    @ApiModelProperty(value = "所属房屋")
    @Dict(dicCode = "id", dictTable = "hs_basis_house", dicText = "house_name", dictHouse = "house")
    private String basicsHouseId;

    /**
     * 所在楼层
     */
    @Excel(name = "所在楼层", width = 15)
    @ApiModelProperty(value = "所在楼层")
    @Dict(dicCode = "id", dictTable = "hs_basis_floor", dicText = "floor_name", dictHouse = "house")
    private String basicsFloorId;

    /**
     * 房间用途
     */
    @Excel(name = "房间用途", width = 15)
    @ApiModelProperty(value = "房间用途")
    @Dict(dicCode = "room_purpose")
    private String basicsRoomPurposeId;

    /**
     * 房间实际用途
     */
    @Excel(name = "房间实际用途", width = 15)
    @ApiModelProperty(value = "房间实际用途")
    @Dict(dicCode = "room_purpose")
    private String basicsRoomRealPurposeId;

    /**
     * 建筑面积（㎡）
     */
    @Excel(name = "建筑面积（㎡）", width = 15)
    @ApiModelProperty(value = "建筑面积（㎡）")
    private BigDecimal constructionArea;

    /**
     * 使用面积（㎡）
     */
    @Excel(name = "使用面积（㎡）", width = 15)
    @ApiModelProperty(value = "使用面积（㎡）")
    private BigDecimal useArea;
    /**
     * 使用面积（㎡）
     */
    @Excel(name = "已分配面积", width = 15)
    @ApiModelProperty(value = "已分配面积")
    @TableField(exist = false)
    private BigDecimal usedArea;
    /**
     * 管理单位
     */
    @Excel(name = "管理单位", width = 15)
    @ApiModelProperty(value = "管理单位")
    @Dict(dicCode = "id", dictTable = "hs_unit", dicText = "name", dictHouse = "house")
    private String orgId;

    /**
     * 使用状态
     */
    @Excel(name = "使用状态", width = 15)
    @ApiModelProperty(value = "使用状态")
    @Dict(dicCode = "room_use_status")
    private String basicsRoomUseStatusId;

    /**
     * 使用单位
     */
    @Excel(name = "使用单位", width = 15)
    @ApiModelProperty(value = "使用单位")
    @Dict(dicCode = "id", dictTable = "hs_unit", dicText = "name", dictHouse = "house")
    private String useBaseinfoUnitId;

    /**
     * 合同号
     */
    @Excel(name = "合同号", width = 15)
    @ApiModelProperty(value = "合同号")
    private String rentContractId;

    /**
     * 原始面积
     */
    @Excel(name = "原始面积", width = 15)
    @ApiModelProperty(value = "原始面积")
    private BigDecimal rawArea;

    /**
     * x坐标
     */
    @Excel(name = "x坐标", width = 15)
    @ApiModelProperty(value = "x坐标")
    private BigDecimal ordx;

    /**
     * y坐标
     */
    @Excel(name = "y坐标", width = 15)
    @ApiModelProperty(value = "y坐标")
    private BigDecimal ordy;

    /**
     * 多边形端点集合
     */
    @Excel(name = "多边形端点集合", width = 15)
    @ApiModelProperty(value = "多边形端点集合")
    private String pois;

    /**
     * 系统中最终显示的文字X坐标
     */
    @Excel(name = "系统中最终显示的文字X坐标", width = 15)
    @ApiModelProperty(value = "系统中最终显示的文字X坐标")
    private BigDecimal ordx1;

    /**
     * 房间最大宽度
     */
    @Excel(name = "房间最大宽度", width = 15)
    @ApiModelProperty(value = "房间最大宽度")
    private BigDecimal roomMaxWidth;

    /**
     * 房间最左坐标
     */
    @Excel(name = "房间最左坐标", width = 15)
    @ApiModelProperty(value = "房间最左坐标")
    private BigDecimal roomLeftX;

    /**
     * 是否电梯
     */
    @Excel(name = "是否电梯", width = 15)
    @ApiModelProperty(value = "是否电梯")
    @Dict(dicCode = "yn")
    private String isLift;

    /**
     * 流程实例id
     */
    @Excel(name = "流程实例id", width = 15)
    @ApiModelProperty(value = "流程实例id")
    private String processInstanceId;

    /**
     * 房间图片
     */
    @Excel(name = "房间图片", width = 15)
    @ApiModelProperty(value = "房间图片")
    private String roomImg;

    /**
     * 启用/停用
     */
    @Excel(name = "启用/停用", width = 15)
    @ApiModelProperty(value = "启用/停用")
    @Dict(dicCode = "yn")
    private String freezeIs;

    /**
     * 停用时间
     */
    @Excel(name = "停用时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "停用时间")
    private java.util.Date freezeDate;

    /**
     * 拆分合并前房间
     */
    @Excel(name = "拆分合并前房间", width = 15)
    @ApiModelProperty(value = "拆分合并前房间")
    private String freezeFromIds;

    /**
     * 拆分合并后房间
     */
    @Excel(name = "拆分合并后房间", width = 15)
    @ApiModelProperty(value = "拆分合并后房间")
    private String freezeToIds;

    /**
     * 管理部门
     */
    @Excel(name = "管理部门", width = 15)
    @ApiModelProperty(value = "管理部门")
    @Dict(dicCode = "id", dictTable = "hs_depart", dicText = "dept_name", dictHouse = "house")
    private String deptId;

    /**
     * 证书匹配情况
     */
    @Excel(name = "证书匹配情况", width = 15)
    @ApiModelProperty(value = "证书匹配情况")
    private String certificateStatus;

    /**
     * 房产证号
     */
    @Excel(name = "房产证号", width = 15)
    @ApiModelProperty(value = "房产证号")
    private String deedNumber;

    /**
     * 土地证号
     */
    @Excel(name = "土地证号", width = 15)
    @ApiModelProperty(value = "土地证号")
    private String landNumber;

    /**
     * 不动产证
     */
    @Excel(name = "不动产证", width = 15)
    @ApiModelProperty(value = "不动产证")
    private String estateNumber;

    /**
     * 单位编码
     */
    @Excel(name = "单位编码", width = 15)
    @ApiModelProperty(value = "单位编码")
    @Dict(dicCode = "id", dictTable = "hs_unit", dicText = "name", dictHouse = "house")
    private String unitCode;

    /**
     * 超标原因
     */
    @Excel(name = "超标原因", width = 15)
    @ApiModelProperty(value = "超标原因")
    private String overAreaReason;

    /**
     * 房屋用途类型
     */
    @Excel(name = "房屋用途类型", width = 15)
    @ApiModelProperty(value = "房屋用途类型")
    @Dict(dicCode = "house_purpose")
    private String housePurposeType;

    /**
     * 托管单主键
     */
    @Excel(name = "托管单主键", width = 15)
    @ApiModelProperty(value = "托管单主键")
    private String hostingId;

    /**
     * 托管单明细主键
     */
    @Excel(name = "托管单明细主键", width = 15)
    @ApiModelProperty(value = "托管单明细主键")
    private String hostingInfoId;

    /**
     * 托管原单位
     */
    @Excel(name = "托管原单位", width = 15)
    @ApiModelProperty(value = "托管原单位")
    @Dict(dicCode = "id", dictTable = "hs_unit", dicText = "name", dictHouse = "house")
    private String hostingUnitId;

    /**
     * 房屋用途
     */
    @Excel(name = "房屋用途", width = 15)
    @ApiModelProperty(value = "房屋用途")
//    @Dict(dicCode = "house_purpose")
    private String basicsHousePurposeId;

    /**
     * 房屋业态
     */
    @Excel(name = "房屋业态", width = 15)
    @ApiModelProperty(value = "房屋业态")
    private String houseBusinessStatus;

    /**
     * 当前状态开始时间
     */
    @Excel(name = "当前状态开始时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "当前状态开始时间")
    private java.util.Date nowStatusDate;

    /**
     * 房屋来源
     */
    @Excel(name = "房屋来源", width = 15)
    @ApiModelProperty(value = "房屋来源")
    @Dict(dicCode = "house_source")
    private String basicsHouseSourceId;

    /**
     * 资产卡片编号
     */
    @Excel(name = "资产卡片编号", width = 15)
    @ApiModelProperty(value = "资产卡片编号")
    private String assetCardNumber;

    /**
     * 资产卡片id
     */
    @Excel(name = "资产卡片id", width = 15)
    @ApiModelProperty(value = "资产卡片id")
    private String assetCardId;

    /**
     * 集团
     */
    @Excel(name = "集团", width = 15)
    @ApiModelProperty(value = "集团")
    private String groupId;

    /**
     * 其他使用情况
     */
    @Excel(name = "其他使用情况", width = 15)
    @ApiModelProperty(value = "其他使用情况")
    @Dict(dicCode = "house_usage")
    private String otherRoomUseStatus;

    /**
     * 打包提交单id
     */
    @Excel(name = "打包提交单id", width = 15)
    @ApiModelProperty(value = "打包提交单id")
    private String batchApprovalId;

    /*级联单位id*/
    @Excel(name = "级联单位id", width = 150)
    @ApiModelProperty(value = "级联单位id")
    private String cascadeUnitIds;
    /*级联单位名称*/
    @Excel(name = "级联单位名称", width = 150)
    @ApiModelProperty(value = "级联单位名称")
    private String cascadeUnitNames;

    /**
     * 使用人
     */
    @TableField(exist = false)
    private String users;
}
